# This file is copied to ~/spec when you run 'ruby script/generate rspec'
# from the project root directory.
ENV["RAILS_ENV"] = "test"
require File.expand_path(File.dirname(__FILE__) + "/../../../../config/environment")
require 'spec/rails'

Spec::Runner.configure do |config|
  config.use_transactional_fixtures = true
  config.use_instantiated_fixtures  = false
  config.fixture_path = RAILS_ROOT + '/spec/fixtures'

  # You can declare fixtures for each behaviour like this:
  #   describe "...." do
  #     fixtures :table_a, :table_b
  #
  # Alternatively, if you prefer to declare them only once, you can
  # do so here, like so ...
  #
  #   config.global_fixtures = :table_a, :table_b
  #
  # If you declare global fixtures, be aware that they will be declared
  # for all of your examples, even those that don't use them.
end

def roles
  ["admin", "staff", "approver"]
end

def set_user(type, target)
  user = mock_model(User)
  user.stub!(:has_role?).and_return(false)
  user.should_receive(:has_role?).with(type).any_number_of_times.and_return(true)
  roles.each do |role|
    identifier = "is_#{role}?".to_sym
    value = (role == type) ? true : false
    user.stub!(identifier).and_return(value)
  end
  target.stub!(:current_user).and_return(user)
end